home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 October / PCWorld_2001-10_cd.bin / Software / Vyzkuste / context / ConTEXTsetup.exe / {app} / Highlighters / x86 Assembler.chl
Text File  |  2001-07-02  |  10KB  |  219 lines

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // x86 Assembly highlighter written by Eden Kirin, foetus@aphex.fpz.hr
  4. //
  5. //////////////////////////////////////////////////////////////////////////////
  6.  
  7. //////////////////////////////////////////////////////////////////////////////
  8. // language name
  9.  
  10. Language:               x86 Assembler
  11.  
  12.  
  13. //////////////////////////////////////////////////////////////////////////////
  14. // default file filter
  15. // note: if more than one extension is associated, eg:
  16. // C/C++ files (*.c,*.cpp,*.h,*.hpp)|*.c;*.cpp;*.h;*.hpp
  17.  
  18. Filter:                 x86 Assembler files (*.asm)|*.asm
  19.  
  20.  
  21. //////////////////////////////////////////////////////////////////////////////
  22. // help file which will be invokend when F1 is pressed
  23.  
  24. HelpFile:
  25.  
  26.  
  27. //////////////////////////////////////////////////////////////////////////////
  28. // language case sensitivity
  29. //                      0  - no
  30. //                      1  - yes
  31.  
  32. CaseSensitive:          0
  33.  
  34.  
  35. //////////////////////////////////////////////////////////////////////////////
  36. // comment type: LineComment - comment to the end of line
  37. // BlockCommentBeg - block comment begin, it could be
  38. // multiline
  39. // BlockCommentEnd - block comment end
  40.  
  41. LineComment:            ;
  42. BlockCommentBeg:
  43. BlockCommentEnd:
  44.  
  45.  
  46. //////////////////////////////////////////////////////////////////////////////
  47. // identifier characters
  48. // note: characters shouldn't be delimited, except arrays
  49. // array of chars could be defined as from_char..to_char
  50.  
  51. IdentifierBegChars:     a..z A..Z _%@.
  52. IdentifierChars:        a..z A..Z _ 0..9 ?
  53.  
  54. //////////////////////////////////////////////////////////////////////////////
  55. // numeric constants begin characters
  56. // note: characters shouldn't be delimited, except arrays
  57. // array of chars could be defined as from_char..to_char
  58. // number always starts with 0..9 except when NumConstBeg
  59. // defines other
  60.  
  61. NumConstBegChars:       0..9
  62.  
  63.  
  64. //////////////////////////////////////////////////////////////////////////////
  65. // numeric constants characters
  66. // note: characters shouldn't be delimited, except arrays
  67. // array of chars could be defined as from_char..to_char
  68. // number always starts with 0..9 except when NumConstBeg
  69. // defines other
  70.  
  71. NumConstChars:          0..9 abcdefhABCDEFH
  72.  
  73.  
  74. //////////////////////////////////////////////////////////////////////////////
  75. // escape character
  76.  
  77. EscapeChar:
  78.  
  79.  
  80. //////////////////////////////////////////////////////////////////////////////
  81. // keyword table
  82. // note: delimited with spaces, lines could be wrapped
  83. // you may divide keywords into two groups which can be
  84. // highlighted differently
  85.  
  86. // op codes
  87.  
  88. KeyWords1:              aaa aad aam adc add and arpl bound bsf bsr bswap bt btc
  89.                         btr bts call cbw cdq clc cld cli clts cmc cmp cmps
  90.                         cmpsb cmpsd cmpsw cmpxchg cwd cwde daa das dec div emms
  91.                         enter f2xm1 fabs fadd faddp fbld fbstp fchs fclex
  92.                         fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu
  93.                         fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdiv
  94.                         fdivp fdivr fdivrp femms ffree fiadd ficom ficomp fidiv
  95.                         fidivr fild fimul fincstp finit fist fistp fisub fisubr
  96.                         fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi
  97.                         fldz fmul fmulp fnclex fninit fnop fnsave fnstcw
  98.                         fnstenv fnstsw fpatan fprem1 fptan frndint frstor fsave
  99.                         fscale fsin fsincos fsqrt fst fstcw fstenv fstp fstsw
  100.                         fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip
  101.                         fucomp fucompp fwait fxch fxtract fyl2xp1 hlt idiv imul
  102.                         in inc ins insb insd insw int into invd invlpg iret
  103.                         iretd iretw ja jae jb jbe jc jcxz je jecxz jg jge jl
  104.                         jle jmp jna jnae jnb jnbe jnc jne jng jnge jnl jnle jno
  105.                         jnp jns jnz jo jp jpe jpo js jz lahf lar lds lea leave
  106.                         les lfs lgdt lgs lidt lldt lmsw lock lods lodsb lodsd
  107.                         lodsw loop loope loopne loopnz loopz lsl lss ltr mov
  108.                         movd movq  movs movsb movsd movsw movsx movzx mul neg
  109.                         nop not or out outs outsb outsd outsw packssdw packsswb
  110.                         packuswb paddb paddd paddsb paddsw paddusb paddusw
  111.                         paddw pand pandn pavgusb pcmpeqb pcmpeqd pcmpeqw
  112.                         pcmpgtb pcmpgtd pcmpgtw pf2id pfacc pfadd pfcmpeq
  113.                         pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1
  114.                         pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmaddwd
  115.                         pmulhrw pmulhw pmullw pop popa popad popaw popf popfd
  116.                         popfw por prefetch prefetchw pslld psllq psllw psrad
  117.                         psraw psrld psrlq psrlw psubb psubd psubsb psubsw
  118.                         psubusb psubusw psubw punpckhbw punpckhdq punpckhwd
  119.                         punpcklbw punpckldq punpcklwd push pusha pushad pushaw
  120.                         pushf pushfd pushfw pxor rcl rcr rep repe repne repnz
  121.                         repz ret rol ror sahf sal sar sbb scas scasb scasd
  122.                         scasw seta setae setb setbe setc sete setg setge setl
  123.                         setle setna setnae setnb setnbe setnc setne setng
  124.                         setnge setnl setnle setno setnp setns setnz seto setp
  125.                         setpo sets setz sgdt shl shld shr shrd sidt sldt smsw
  126.                         stc std sti stos stosb stosd stosw str sub test verr
  127.                         verw wait wbinvd xadd xchg xlat xlatb xor
  128.  
  129. // registers
  130.  
  131. KeyWords2:              ax bx cx dx ex si di bp sp ss es ds cs ip
  132.                         al ah bl bh ch cl dh dl eh el
  133.                         eax ebx ebp ecx edi edx esi esp
  134.  
  135.  
  136. KeyWords3:              %out .186 .286 .286c .286p .287 .386 .386p .387 .8086
  137.                         .8087 .alpha .seq .code .const .cref .data .data? .err
  138.                         .err1 .err2 .errb .errdef .errdif .erre .fardata
  139.                         .fardata? .lall .lfcond .list .model .msfloat .radix
  140.                         .sall .sfcond .stack .type .xall .xcref .xlist @curseg
  141.                         @filename @code @codesize @datasize @const @data @data?
  142.                         @fardata @fardata? @stack align and assume at b byte
  143.                         comm comment common compact d db dd df dosseg dup fq dt
  144.                         dw dword else end endif endm endp ends eq equ even
  145.                         exitm extrn far ge group h high huge ifdef include
  146.                         includelib irp irpc label large le length low local lt
  147.                         macro mask medium memory name near not o offset or org
  148.                         page para proc public purge q record rept seg segment
  149.                         shl short size shr small stack struc subttl this tiny
  150.                         title type use16 use32 width word xor code data nothing
  151.                         ptr
  152.  
  153.  
  154. //////////////////////////////////////////////////////////////////////////////
  155. // string delimiter: StringBegChar - string begin char
  156. // StringEndChar - string end char
  157. // MultilineStrings - enables multiline strings, as perl
  158. // has it
  159.  
  160. StringBegChar:          "
  161. StringEndChar:          "
  162. MultilineStrings:       0
  163.  
  164.  
  165. //////////////////////////////////////////////////////////////////////////////
  166. // use preprocessor: 0 - no
  167. // 1 - yes
  168. // note: if yes, '#' and statements after it will be
  169. // highlighted with Preprocessor defined colors
  170.  
  171. UsePreprocessor:        0
  172.  
  173.  
  174. //////////////////////////////////////////////////////////////////////////////
  175. // highlight line: 0 - no
  176. // 1 - yes
  177. // note: if yes, current line will be highlighted
  178.  
  179. CurrLineHighlighted:    0
  180.  
  181.  
  182. //////////////////////////////////////////////////////////////////////////////
  183. // colors
  184. // note:                first value is foreground, second is background color
  185. //                        and third (optional) represents font attribute:
  186. //                        B - bold
  187. //                        I - italic
  188. //                        U - underline
  189. //                        S - strike out
  190. //                        attributes can be combined: eg. B or BI
  191. //                      as value, it could be used any standard windows color:
  192. //                        clBlack, clMaroon, clGreen, clOlive, clNavy,
  193. //                        clPurple, clTeal, clGray, clSilver, clRed, clLime,
  194. //                        clYellow, clBlue, clFuchsia, clAqua, clLtGray,
  195. //                        clDkGray, clWhite, clScrollBar, clBackground,
  196. //                        clActiveCaption, clInactiveCaption, clMenu, clWindow,
  197. //                        clWindowFrame, clMenuText, clWindowText, clCaptionText,
  198. //                        clActiveBorder, clInactiveBorder, clAppWorkSpace,
  199. //                        clHighlight, clHighlightText, clBtnFace, clBtnShadow,
  200. //                        clGrayText, clBtnText, clInactiveCaptionText,
  201. //                        clBtnHighlight, cl3DDkShadow, cl3DLight, clInfoText,
  202. //                        clInfoBk
  203. //                      as value, it could be used hex numeric constant too:
  204. //                        $BBGGRR - BB: blue, GG: green, RR: red, eg: $FF6A00
  205.  
  206. SpaceCol:               clWindowText clWindow
  207. Keyword1Col:            clNavy clWindow
  208. Keyword2Col:            clPurple clWindow
  209. Keyword3Col:            clBlue clWindow
  210. IdentifierCol:          clWindowText clWindow
  211. CommentCol:             clGray clWindow
  212. NumberCol:              clRed clWindow
  213. StringCol:              clMaroon clWindow
  214. SymbolCol:              clGray clWindow
  215. PreprocessorCol:        clBlue clWindow
  216. SelectionCol:           clWhite clNavy
  217. CurrentLineCol:         clBlack clYellow
  218.  
  219.